<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>state</title>
  </head>
  <body>
    <div id="test">我是一段文本</div>

    <script src="../js/react.development.js"></script>
    <script src="../js/react-dom.development.js"></script>
    <script src="../js/babel.min.js"></script>

    <script>
      function handleClick() {
        console.log('你点击了当前标签')
      }
    </script>

    <script type="text/babel">
      // 创建 Weather 组件
      class Weather extends React.Component {
        constructor(props) {
          super(props)
          // this.isHot = false // 这样写会直接在当前实例对象上添加该属性
          this.state = {
            isHot: true
          }
        }

        changeWeather() {
          // 资料拓展：
          // 1. 类中的所有方法都开启了局部的严格模式，（当前方法中的 this 指向 undefined）
          // 2. babel 是开启的严格模式
          // console.log('changeWeather-->this', this)
          this.state.isHot = !this.state.isHot
        }

        render() {
          const { isHot } = this.state
          console.log(this)
          return (
            <p id="title" onClick={this.changeWeather}>
              今天天气很{isHot ? '炎热' : '清爽'}
            </p>
          )
        }
      }

      ReactDOM.render(<Weather />, document.getElementById('test'))

      // 提问：
      // 类中方法 this 的指向
      // 类中定义的方法都开启了严格模式
      class Person {}
    </script>
  </body>
</html>
